package com.leetcode.easy;

/**
 * @Classname IsPalindrome
 * @Description 验证回文数
 * @Date 2020/9/18 10:26
 * @Created by zfl
 */
public class IsPalindrome {

    /**
     * @param s
     * @return
     * 验证回文数
     * 执行用时：3 ms, 在所有 Java 提交中击败了93.19%的用户
     * 内存消耗：39 MB, 在所有 Java 提交中击败了41.85%的用户
     */
    public static boolean isPalindrome(String s) {
        if(s == null || s.length() == 0) {
            return true;
        }
        String str = s.toLowerCase();
        char[] c = str.toCharArray();
        int left = 0, right = c.length - 1;
        while (left < right) {
            if(isLegal(c[left]) && isLegal(c[right])) {
                if(c[left] != c[right]) {
                    return false;
                }
                left++;
                right--;
            }else if(!isLegal(c[left])) {
                left++;
            }else if(!isLegal(c[right])) {
                right--;
            }
        }
        return true;
    }

    public static boolean isLegal(char c) {
       return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') ;
    }
}
